This invention relates to computers having graphically-oriented user interfaces. More particularly, this invention relates to such computers which provide the facility for users to create their own graphic interfaces for application programs that they write. Most particularly, this invention relates to a system and method for allowing users to link graphic elements of interfaces that they create to specific variables and functions in their application programs.
Computer systems are known in which the operating system provides a graphic interface with the computer user. The user can run application programs, manipulate files, and perform substantially all other functions needed by the average user by manipulating graphic images on the computer's display, either by using cursor control keys and other keyboard keys or by using a cursor controlling peripheral device such as a joystick, "mouse" or track ball.
In such a system, programs are frequently represented by small graphic images that identify the programs to the user. For example, a word processing program might be represented by a graphic image of a piece of paper having lines of text on it and a writing instrument such as a pencil or a quill pen writing on the page. A program is invoked by moving the cursor or a pointer to the graphic image representing the program (e.g., by using a mouse), and then pressing the appropriate button (e.g., the mouse button or the "Enter" key on the keyboard).
Similar facility is provided within programs that run on such systems. Thus, within the word processing program referred to above, various graphic elements are arranged within various windows which can be opened with the mouse, and the various graphic elements invoke various functions of the program (e.g., create a new document, retrieve an existing document, delete a document, print a document). These graphic interface features within applications programs are created by the writer of the program, based on knowledge of the operating system of the computer for which the software is written.
More recently, it has been known to provide as part of the operating system of some computers a graphic interface configuration utility that allows users to create graphic interfaces for their own application programs by using a set of "tools" provided in a "palette/toolbox" that appears on the screen when the utility is in use. The tools include line drawing functions, the ability to apply certain colors or shading to certain elements placed on the screen, and the ability to place boxes and other items (e.g., "buttons") at desired locations on the screen. The ability to create fields into which text or variables (e.g., for mathematical formulae) can be entered is also available. For example, a user may have written a simple program to give as a result the sum of two numbers, x and y, entered by the end user. Therefore, the user would use the graphic interface configuration utility to create three fields on the screen--one for x, one for y, and one for the result, as well as a button to invoke the part of the program that performs the calculation. In order for such an interface to function, the fields must be linked to the appropriate variables in the underlying program, and the button must be linked to the appropriate code for performing the desired function (here, addition). The known graphic interface configuration utility provided a way for those links to be made in the case of the functional button, but not in the case of the variable fields. The program itself had to link the variables to the variable fields.
Furthermore, graphic-interface-oriented computers frequently use object-oriented programming languages, such as object-oriented C or objective FORTRAN. In such programming languages, programs are divided into a plurality of programming elements known as objects. In the known graphic interface configuration utility, when a particular window and its contents are defined, any button-type graphic elements in the window could be linked to portions of a single programming element or object, but not to different objects, which frequently limits the ability of the user to configure an interface to achieve a desired result. This is also a limitation when standard programming languages are used and more than one program is involved.
It would be desirable to be able to provide a graphic interface configuration utility that would allow fields in the interface to be linked to variables in an underlying program.
It would also be desirable to be able to provide a graphic interface configuration utility that would allow graphic elements in the interface to be linked to variables or functions in any one of a number of programming elements.